import Vue from 'vue'
import VueRouter from 'vue-router'
import Login from '../components/Login.vue'
import Home from '../components/Home.vue'
import Welcome from '../components/Welcome.vue'
import User from '../components/user/User.vue'
import Rights from '../components/power/Right.vue'
import Roles from '../components/power/Roles.vue'
import Cate from '../components/goods/Cate.vue'
import Params from '../components/goods/Params.vue'
Vue.use(VueRouter)
const routes = []
const router = new VueRouter({
  //每个路由规则都是一个配置对象，其中至少包含path和component两个属性
  //path表示当前路由规则匹配的hash地址
  //component 表示当前路由规则对应要展示的组件
  routes: [{
      path: '/',
      redirect: '/login'
    },
    {
      path: '/login',
      component: Login
    },
    {
      //这样就可以先将home中的组件加载了，然后跳转到welcome中
      path: '/home',
      component: Home,
      redirect: '/welcome',
      children: [
        {
        path: '/welcome',
        component: Welcome
      }, {
        path: '/users',
        component: User
      },{
        path:'/rights',
        component: Rights
      },{
        path: '/roles',
        component: Roles
      },{
        path: '/categories',
        component: Cate
      },{
        path: '/params',
        component:Params
      }
     ]
    }
  ]
})
//挂载路由导航守卫
router.beforeEach((to, from, next) => {
  //to 将要访问的路径  from 代表从哪个路径跳转而来
  //next 是一个函数，表示放行 
  // next() 放行   next('/login') 强制跳转
  if (to.path === '/login') return next()
  //获取token
  const tokenStr = window.sessionStorage.getItem('token')
  if (!tokenStr) return next('/login')
  next()
})
export default router
